perm filename PROTO.SAI[SYS,HE] blob sn#056482 filedate 1973-08-30 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	BEGIN "PROTO"
C00005 ENDMK
C⊗;
BEGIN "PROTO"

REQUIRE "⊂⊃⊂⊃" DELIMITERS;
REQUIRE "ABBREV.SAI[H,AJT]" SOURCE_FILE;
INTEGER BGB12,BGB16,BGBRET;
REQUIRE "GEOMES.HDR[BGB,AJT]" SOURCE_FILE;
INTEGER BOD,WORLD, WINDOW, CAMERA, CHAN,BRK,EOF;
INTEGER ARRAY DPYBUF[1:250],VERT[1:20];
REDEFINE TYPE(V)=⊂(MEMORY[V,INTEGER]%2↑18)⊃;
DEFINE PPIOT= ⊂'702000000000⊃;

SIMPLE INTEGER PROCEDURE VCOUNT(INTEGER B);
BEGIN "VC"
INTEGER V,N;
	N←0;
	V←B;
	WHILE B≠(V←PVT(V)) DO BEGIN N←N+1; VERT[N]←V;END;
	RETURN(N);
END "VC";

α set up the universe;
WORLD←MKWORLD;
WINDOW←MKWINDOW;
CAMERA←MKCAMERA;
BATT(WORLD,WINDOW);
BATT(CAMERA,WINDOW);

α diddle the page printer;

START_CODE
	PPIOT 2,-'480;
	PPIOT 3,'3003;
END;

WHILE TRUE DO
	BEGIN
	INTEGER I,VERTEX,NO_OF_VERT, XCORD,YCORD,XOFFSET,V1X,V1Y;
	BOOLEAN HIDE,FLAG; STRING FNAME,OSTR;

	OUTSTR(↓&"  .B3D ");
	BOD←IFORM1;
	OUTSTR(" 2 OR 3D :");
	IF CVD(INCHWL)=2 THEN BEGIN HIDE←TRUE;SHOW2(WINDOW,0) END 
			 ELSE BEGIN HIDE←FALSE;SHOW1(WINDOW,0);END;
	DPYSET(DPYBUF);
	NO_OF_VERT←VCOUNT(BOD);

	FOR I← 1 STEP 1 UNTIL  NO_OF_VERT DO
		BEGIN
		VERTEX←VERT[I];
		IF ¬HIDE ∨ (TYPE(VERTEX) LAND '20) THEN 
                   	BEGIN
			INTEGER X,Y;
	               	XCORD←XPP(VERTEX); YCORD←YPP(VERTEX);
			AIVECT(XCORD*4,YCORD*4);
			DPYSST(" ("&CVS(XCORD)&","&CVS(YCORD)&")");
			AIVECT(-475,350-(I*20)); 
			DPYSST("VERTEX #"&CVS(VERTEX)&"   "&CVS(XCORD)&"   "
				&CVS(YCORD));
			END;
		END;
	DPYOUT(1);
        OUTSTR("ANOTHER B3D FILE? "); IF INCHWL="N" THEN DONE;
	KLBFEV(BOD); SHOW1(WINDOW,0); DPYSET(DPYBUF);DPYOUT(1);
	END;

END "PROTO";